Some types of software programs create and use a memory cache during operation, such as by using RAM (“random access memory”) or other volatile memory of the computing device on which the program is executing. For example, after an application program or an operating system program has initiated a retrieval of data from a hard disk or other non-volatile storage device, the retrieved data may be stored in the memory cache, to enable that cached data to later be used without having to again retrieve the data from the non-volatile storage device. One example of a type of program that may use particularly large memory caches is a database server program that supports retrieval of data from a database, which may use volatile memory to cache data retrieved from one or more non-volatile storage devices that store data for the database. Benefits of such memory caches include rapid access to cached data, relative to having to instead retrieve that data from non-volatile storage. However, when a computing device that has a memory cache is powered down (e.g., in response to a software error or other failure), all of the data that was present in the memory cache is lost, and upon restart it can be a time-consuming process to gradually refill the memory cache to a state similar to that before the power down operation.